[INFO] cloning repository https://github.com/BloodStainedCrow/sts2engine
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/BloodStainedCrow/sts2engine" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBloodStainedCrow%2Fsts2engine", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBloodStainedCrow%2Fsts2engine'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 121db071183d1b904f28278e68c3671f58ade99a
[INFO] testing BloodStainedCrow/sts2engine against try#28f95933dc0727396c07b48d0a8cb5211b7fb472 for pr-154065-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBloodStainedCrow%2Fsts2engine" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-1-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/BloodStainedCrow/sts2engine
[INFO] finished tweaking git repo https://github.com/BloodStainedCrow/sts2engine
[INFO] tweaked toml for git repo https://github.com/BloodStainedCrow/sts2engine written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/BloodStainedCrow/sts2engine on toolchain 28f95933dc0727396c07b48d0a8cb5211b7fb472
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/BloodStainedCrow/sts2engine already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 44b61a935b666062ac7bff9db0d225c99c4182d964fc060f0a3c9291288c27c7
[INFO] running `Command { std: "docker" "start" "-a" "44b61a935b666062ac7bff9db0d225c99c4182d964fc060f0a3c9291288c27c7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "44b61a935b666062ac7bff9db0d225c99c4182d964fc060f0a3c9291288c27c7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "44b61a935b666062ac7bff9db0d225c99c4182d964fc060f0a3c9291288c27c7", kill_on_drop: false }`
[INFO] [stdout] 44b61a935b666062ac7bff9db0d225c99c4182d964fc060f0a3c9291288c27c7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cbf99819e4f2e58a75561682fe65d45bb66ac8cdc635fd226ba8f458268b9117
[INFO] running `Command { std: "docker" "start" "-a" "cbf99819e4f2e58a75561682fe65d45bb66ac8cdc635fd226ba8f458268b9117", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling zerocopy v0.8.47
[INFO] [stderr]    Compiling rand_core v0.10.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling cpufeatures v0.3.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling cc v1.2.58
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling rapidhash v4.4.1
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling chacha20 v0.10.0
[INFO] [stderr]    Compiling totally-ordered v0.2.0
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling take_mut v0.2.2
[INFO] [stderr]    Compiling rand v0.10.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling libmimalloc-sys v0.1.44
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling mimalloc v0.1.48
[INFO] [stderr]    Compiling timer v0.2.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling enum-map-derive v0.17.0
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling enum-map v2.7.3
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling sts2mcts v0.1.0 (https://github.com/BloodStainedCrow/sts2mcts#d7bab221)
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling rcon-client v0.1.3
[INFO] [stderr]    Compiling sts2engine v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `SeedableRng`, `random_range`, and `rngs::SmallRng`
[INFO] [stdout]  --> src/distribution/single.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rand::{Rng, RngExt, SeedableRng, random_range, rng, rngs::SmallRng, seq::IteratorRandom};
[INFO] [stdout]   |                         ^^^^^^^^^^^  ^^^^^^^^^^^^       ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/run_state/mcts.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |         vec![todo!()].into_iter()
[INFO] [stdout]    |         ^^^^^-------^
[INFO] [stdout]    |         |    |
[INFO] [stdout]    |         |    any code following this expression is unreachable
[INFO] [stdout]    |         unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/combat_state/encounter.rs:1276:17
[INFO] [stdout]      |
[INFO] [stdout] 1273 |                 todo!();
[INFO] [stdout]      |                 ------- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 1276 |                 let mut the_forgotten = EnumMap::default();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/combat_state/encounter.rs:494:29
[INFO] [stdout]     |
[INFO] [stdout] 494 |                         let mut status = EnumMap::default();
[INFO] [stdout]     |                             ----^^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/combat_state/encounter.rs:706:66
[INFO] [stdout]     |
[INFO] [stdout] 706 |             EncounterPrototype::TheKin => state.flat_map_simple(|mut state| {
[INFO] [stdout]     |                                                                  ----^^^^^
[INFO] [stdout]     |                                                                  |
[INFO] [stdout]     |                                                                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/combat_state/encounter.rs:1176:21
[INFO] [stdout]      |
[INFO] [stdout] 1176 |                 let mut status = EnumMap::default();
[INFO] [stdout]      |                     ----^^^^^^
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/combat_state/encounter.rs:1271:67
[INFO] [stdout]      |
[INFO] [stdout] 1271 |             EncounterPrototype::TheLostAndForgotten => state.map(|mut state| {
[INFO] [stdout]      |                                                                   ----^^^^^
[INFO] [stdout]      |                                                                   |
[INFO] [stdout]      |                                                                   help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/combat_state/encounter.rs:1272:21
[INFO] [stdout]      |
[INFO] [stdout] 1272 |                 let mut the_lost = EnumMap::default();
[INFO] [stdout]      |                     ----^^^^^^^^
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]     --> src/combat_state/encounter.rs:1271:67
[INFO] [stdout]      |
[INFO] [stdout] 1271 |             EncounterPrototype::TheLostAndForgotten => state.map(|mut state| {
[INFO] [stdout]      |                                                                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `the_lost`
[INFO] [stdout]     --> src/combat_state/encounter.rs:1272:21
[INFO] [stdout]      |
[INFO] [stdout] 1272 |                 let mut the_lost = EnumMap::default();
[INFO] [stdout]      |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_the_lost`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/combat_state/mod.rs:344:39
[INFO] [stdout]     |
[INFO] [stdout] 344 |             CombatAction::UsePotion { index } => todo!(),
[INFO] [stdout]     |                                       ^^^^^ help: try ignoring the field: `index: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/combat_state/mod.rs:529:9
[INFO] [stdout]     |
[INFO] [stdout] 529 |         mut self,
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_discard_pile_cards`
[INFO] [stdout]    --> src/combat_state/mod.rs:566:17
[INFO] [stdout]     |
[INFO] [stdout] 566 |             let num_discard_pile_cards = self.player.discard_pile.num_cards()
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_discard_pile_cards`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/combat_state/mod.rs:732:9
[INFO] [stdout]     |
[INFO] [stdout] 732 |         mut self,
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enemy_index`
[INFO] [stdout]    --> src/combat_state/mod.rs:938:30
[INFO] [stdout]     |
[INFO] [stdout] 938 |     fn enemy_is_alone(&self, enemy_index: EnemyIndex) -> bool {
[INFO] [stdout]     |                              ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/combat_state/mod.rs:1845:25
[INFO] [stdout]      |
[INFO] [stdout] 1845 |                     let mut state =
[INFO] [stdout]      |                         ----^^^^^
[INFO] [stdout]      |                         |
[INFO] [stdout]      |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/combat_state/mod.rs:3200:9
[INFO] [stdout]      |
[INFO] [stdout] 3200 |         mut self,
[INFO] [stdout]      |         ----^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `card`
[INFO] [stdout]     --> src/combat_state/mod.rs:3245:22
[INFO] [stdout]      |
[INFO] [stdout] 3245 |     fn matches(self, card: Card) -> bool {
[INFO] [stdout]      |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_card`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/comm.rs:704:39
[INFO] [stdout]     |
[INFO] [stdout] 704 |             CombatAction::UsePotion { index } => todo!(),
[INFO] [stdout]     |                                       ^^^^^ help: try ignoring the field: `index: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/micro_engine.rs:405:48
[INFO] [stdout]     |
[INFO] [stdout] 405 |                 CombatAction::PlayCard { card, target } => {
[INFO] [stdout]     |                                                ^^^^^^ help: try ignoring the field: `target: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/micro_engine.rs:415:43
[INFO] [stdout]     |
[INFO] [stdout] 415 |                 CombatAction::UsePotion { index } => 50,
[INFO] [stdout]     |                                           ^^^^^ help: try ignoring the field: `index: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]    --> src/micro_engine.rs:367:46
[INFO] [stdout]     |
[INFO] [stdout] 367 |                 EvalRunResult::Exact { eval, action } => {
[INFO] [stdout]     |                                              ^^^^^^ help: try ignoring the field: `action: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/micro_engine.rs:526:48
[INFO] [stdout]     |
[INFO] [stdout] 526 |                 CombatAction::PlayCard { card, target } => {
[INFO] [stdout]     |                                                ^^^^^^ help: try ignoring the field: `target: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/micro_engine.rs:536:43
[INFO] [stdout]     |
[INFO] [stdout] 536 |                 CombatAction::UsePotion { index } => 50,
[INFO] [stdout]     |                                           ^^^^^ help: try ignoring the field: `index: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]    --> src/micro_engine.rs:491:46
[INFO] [stdout]     |
[INFO] [stdout] 491 |                 EvalRunResult::Exact { eval, action } => {
[INFO] [stdout]     |                                              ^^^^^^ help: try ignoring the field: `action: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]    --> src/micro_engine.rs:606:46
[INFO] [stdout]     |
[INFO] [stdout] 606 |                 EvalRunResult::Exact { eval, action } => {
[INFO] [stdout]     |                                              ^^^^^^ help: try ignoring the field: `action: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `turn_count`
[INFO] [stdout]    --> src/micro_engine.rs:635:13
[INFO] [stdout]     |
[INFO] [stdout] 635 |         let turn_count = state.turn_counter;
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_turn_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chance`
[INFO] [stdout]    --> src/micro_engine.rs:647:37
[INFO] [stdout]     |
[INFO] [stdout] 647 |         for (i, (post_action_state, chance)) in successors.iter_with_odds().enumerate() {
[INFO] [stdout]     |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_chance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chance`
[INFO] [stdout]    --> src/micro_engine.rs:744:37
[INFO] [stdout]     |
[INFO] [stdout] 744 |         for (i, (post_action_state, chance)) in successors.iter_with_odds().enumerate() {
[INFO] [stdout]     |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_chance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/micro_engine.rs:798:69
[INFO] [stdout]     |
[INFO] [stdout] 798 | fn print_action_map<Eval: Display>(map: &Vec<(CombatAction, Eval)>, state: &CombatState) {
[INFO] [stdout]     |                                                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/micro_engine.rs:804:39
[INFO] [stdout]     |
[INFO] [stdout] 804 |             CombatAction::UsePotion { index } => todo!(),
[INFO] [stdout]     |                                       ^^^^^ help: try ignoring the field: `index: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]   --> src/run_state/mcts.rs:22:25
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn apply(&mut self, action: &Self::Action) {
[INFO] [stdout]    |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestEngineCurrentHp` is never constructed
[INFO] [stdout]   --> src/main.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct TestEngineCurrentHp {}
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_expectimax` is never used
[INFO] [stdout]    --> src/main.rs:208:4
[INFO] [stdout]     |
[INFO] [stdout] 208 | fn run_expectimax() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `UsePotion` is never constructed
[INFO] [stdout]  --> src/combat_action.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum CombatAction {
[INFO] [stdout]   |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 9 |     UsePotion { index: u8 },
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `CombatAction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `potions_used`, `bonus_card_rewards`, and `relic_state` are never read
[INFO] [stdout]    --> src/combat_state/mod.rs:160:9
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub struct PostCombatState {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub potions_used: [bool; 10],
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub bonus_card_rewards: u8,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 164 |
[INFO] [stdout] 165 |     pub relic_state: FullRelicState,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PostCombatState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `on_draw_non_draw_phase_card` is never used
[INFO] [stdout]     --> src/combat_state/mod.rs:1450:8
[INFO] [stdout]      |
[INFO] [stdout]  190 | impl CombatState {
[INFO] [stdout]      | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1450 |     fn on_draw_non_draw_phase_card<
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Lightning`, `Frost`, `Dark`, `Plasma`, and `Glass` are never constructed
[INFO] [stdout]     --> src/combat_state/mod.rs:3296:5
[INFO] [stdout]      |
[INFO] [stdout] 3295 | enum Orb {
[INFO] [stdout]      |      --- variants in this enum
[INFO] [stdout] 3296 |     Lightning,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 3297 |     Frost,
[INFO] [stdout]      |     ^^^^^
[INFO] [stdout] 3298 |     Dark { accumulator: u16 },
[INFO] [stdout]      |     ^^^^
[INFO] [stdout] 3299 |     Plasma,
[INFO] [stdout]      |     ^^^^^^
[INFO] [stdout] 3300 |     Glass { damage_reduction: u8 },
[INFO] [stdout]      |     ^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `Orb` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_intent` is never used
[INFO] [stdout]     --> src/combat_state/mod.rs:3807:8
[INFO] [stdout]      |
[INFO] [stdout] 3806 | impl EnemyStateMachine {
[INFO] [stdout]      | ---------------------- method in this implementation
[INFO] [stdout] 3807 |     fn get_intent(&self) -> Intent {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Intent` is never used
[INFO] [stdout]     --> src/combat_state/mod.rs:3812:6
[INFO] [stdout]      |
[INFO] [stdout] 3812 | enum Intent {}
[INFO] [stdout]      |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `X` is never constructed
[INFO] [stdout]    --> src/combat_state/cards.rs:193:5
[INFO] [stdout]     |
[INFO] [stdout] 192 | pub enum CostVal {
[INFO] [stdout]     |          ------- variant in this enum
[INFO] [stdout] 193 |     X,
[INFO] [stdout]     |     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CostVal` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `upgraded` and `get_rarity` are never used
[INFO] [stdout]    --> src/combat_state/cards.rs:221:12
[INFO] [stdout]     |
[INFO] [stdout] 220 | impl Card {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] 221 |     pub fn upgraded(self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 |     pub fn get_rarity(self) -> Rarity {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Rarity` is never used
[INFO] [stdout]    --> src/combat_state/cards.rs:522:10
[INFO] [stdout]     |
[INFO] [stdout] 522 | pub enum Rarity {
[INFO] [stdout]     |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OtherPlayer` is never constructed
[INFO] [stdout]    --> src/combat_state/cards.rs:533:5
[INFO] [stdout]     |
[INFO] [stdout] 531 | pub enum LegalTarget {
[INFO] [stdout]     |          ----------- variant in this enum
[INFO] [stdout] 532 |     OwnPlayer,
[INFO] [stdout] 533 |     OtherPlayer,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LegalTarget` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Act` is never used
[INFO] [stdout]   --> src/combat_state/encounter.rs:59:10
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub enum Act {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_act` is never used
[INFO] [stdout]   --> src/combat_state/encounter.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | impl EncounterPrototype {
[INFO] [stdout]    | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn get_act(self) -> Act {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_combat_state` is never used
[INFO] [stdout]   --> src/comm.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl Comm {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     fn get_combat_state(&self) -> Vec<CombatState> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `kind` is never read
[INFO] [stdout]    --> src/comm.rs:270:5
[INFO] [stdout]     |
[INFO] [stdout] 269 | struct PlayerCreatureInfo {
[INFO] [stdout]     |        ------------------ field in this struct
[INFO] [stdout] 270 |     kind: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PlayerCreatureInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `discard`, `exhaust`, and `play` are never read
[INFO] [stdout]    --> src/comm.rs:481:5
[INFO] [stdout]     |
[INFO] [stdout] 478 | struct CardState {
[INFO] [stdout]     |        --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 481 |     discard: vec::Vec<CardInfo>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 482 |     exhaust: vec::Vec<CardInfo>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 483 |     play: vec::Vec<CardInfo>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CardState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `discard_pile` is never used
[INFO] [stdout]    --> src/comm.rs:659:8
[INFO] [stdout]     |
[INFO] [stdout] 506 | impl RCONComm {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 659 |     fn discard_pile(&mut self) -> vec::Vec<CardInfo> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `iter_with_odds` and `sort_by` are never used
[INFO] [stdout]   --> src/distribution/mod.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait Distribution<Value: 'static>:
[INFO] [stdout]    |           ------------ methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 49 |     fn iter_with_odds(&self) -> impl Iterator<Item = (&Value, f32)>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 50 |
[INFO] [stdout] 51 |     fn sort_by<F>(&mut self, compare: F)
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Flatten` is never used
[INFO] [stdout]   --> src/distribution/mod.rs:80:11
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub trait Flatten<Value: 'static, D: Distribution<Value> + 'static>: Distribution<D> {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `flatten` is never used
[INFO] [stdout]   --> src/distribution/single.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl<Value> Distribution<Distribution<Value>> {
[INFO] [stdout]    | --------------------------------------------- method in this implementation
[INFO] [stdout] 19 |     fn flatten(self) -> Distribution<Value> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MicroEngine` is never constructed
[INFO] [stdout]   --> src/micro_engine.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct MicroEngine<F: EvaluationFunction> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BraveHashTable` is never constructed
[INFO] [stdout]   --> src/micro_engine.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | struct BraveHashTable<EvalResult> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TranspositionTableEntry` is never constructed
[INFO] [stdout]   --> src/micro_engine.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | struct TranspositionTableEntry<EvalResult> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get`, and `insert` are never used
[INFO] [stdout]   --> src/micro_engine.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl<EvalResult: Clone + Debug> BraveHashTable<EvalResult> {
[INFO] [stdout]    | ---------------------------------------------------------- associated items in this implementation
[INFO] [stdout] 48 |     fn new(size_in_bytes: usize) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     fn get<K: Hash>(&self, k: &K, depth: Option<u8>) -> Option<&EvalRunResult<EvalResult>> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     fn insert<K: Hash>(
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EvalRunResult` is never used
[INFO] [stdout]    --> src/micro_engine.rs:136:6
[INFO] [stdout]     |
[INFO] [stdout] 136 | enum EvalRunResult<EvalResult> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `EvaluationFunction` is never used
[INFO] [stdout]    --> src/micro_engine.rs:145:11
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub trait EvaluationFunction {
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `EvalResult` is never used
[INFO] [stdout]    --> src/micro_engine.rs:152:11
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub trait EvalResult:
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EventInfo` is never constructed
[INFO] [stdout]    --> src/micro_engine.rs:164:8
[INFO] [stdout]     |
[INFO] [stdout] 164 | struct EventInfo<Eval: Copy> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `EventInfoVecExt` is never used
[INFO] [stdout]    --> src/micro_engine.rs:170:7
[INFO] [stdout]     |
[INFO] [stdout] 170 | trait EventInfoVecExt<Eval> {
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROBING_FACTOR` is never used
[INFO] [stdout]    --> src/micro_engine.rs:212:7
[INFO] [stdout]     |
[INFO] [stdout] 212 | const PROBING_FACTOR: usize = 1;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `next_combat_action`, `get_action_map`, `get_max`, `get_max_probe`, and `get_expected` are never used
[INFO] [stdout]    --> src/micro_engine.rs:215:12
[INFO] [stdout]     |
[INFO] [stdout] 214 | impl<F: EvaluationFunction> MicroEngine<F> {
[INFO] [stdout]     | ------------------------------------------ associated items in this implementation
[INFO] [stdout] 215 |     pub fn new(fun: F) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn next_combat_action(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     pub(crate) fn get_action_map(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     fn get_max(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 462 |     fn get_max_probe(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 575 |     fn get_expected(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_action_map` is never used
[INFO] [stdout]    --> src/micro_engine.rs:798:4
[INFO] [stdout]     |
[INFO] [stdout] 798 | fn print_action_map<Eval: Display>(map: &Vec<(CombatAction, Eval)>, state: &CombatState) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RunState` is never constructed
[INFO] [stdout]  --> src/run_state/mod.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct RunState {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RunAction` is never used
[INFO] [stdout]   --> src/run_state/mod.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum RunAction {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Act` is never constructed
[INFO] [stdout]   --> src/run_state/mod.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct Act {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ActPrototype` is never used
[INFO] [stdout]   --> src/run_state/mod.rs:27:6
[INFO] [stdout]    |
[INFO] [stdout] 27 | enum ActPrototype {
[INFO] [stdout]    |      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Map` is never constructed
[INFO] [stdout]   --> src/run_state/mod.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | struct Map {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]   --> src/run_state/mod.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | struct Node {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NodeKind` is never used
[INFO] [stdout]   --> src/run_state/mod.rs:48:6
[INFO] [stdout]    |
[INFO] [stdout] 48 | enum NodeKind {
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Distribution` is never used
[INFO] [stdout]  --> src/run_state/card_rarity_odds.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | enum Distribution {
[INFO] [stdout]   |      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BASE_ODDS` is never used
[INFO] [stdout]   --> src/run_state/card_rarity_odds.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const BASE_ODDS: EnumMap<Distribution, EnumMap<Rarity, f32>> = EnumMap::from_array([
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BASE_ODDS_SCARCITY_ASCENSION` is never used
[INFO] [stdout]   --> src/run_state/card_rarity_odds.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 | const BASE_ODDS_SCARCITY_ASCENSION: EnumMap<Distribution, EnumMap<Rarity, f32>> =
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BASE_PITY` is never used
[INFO] [stdout]   --> src/run_state/card_rarity_odds.rs:46:7
[INFO] [stdout]    |
[INFO] [stdout] 46 | const BASE_PITY: f32 = -0.05;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PITY` is never used
[INFO] [stdout]   --> src/run_state/card_rarity_odds.rs:47:7
[INFO] [stdout]    |
[INFO] [stdout] 47 | const MAX_PITY: f32 = 0.4;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PITY_RARITY_GROWTH` is never used
[INFO] [stdout]   --> src/run_state/card_rarity_odds.rs:48:7
[INFO] [stdout]    |
[INFO] [stdout] 48 | const PITY_RARITY_GROWTH: f32 = 0.01;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PITY_RARITY_GROWTH_SCARCITY_ASCENSION` is never used
[INFO] [stdout]   --> src/run_state/card_rarity_odds.rs:49:7
[INFO] [stdout]    |
[INFO] [stdout] 49 | const PITY_RARITY_GROWTH_SCARCITY_ASCENSION: f32 = 0.005;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CardRarityOdds` is never constructed
[INFO] [stdout]   --> src/run_state/card_rarity_odds.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 | struct CardRarityOdds {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `roll_with_pity_and_advance_on_fail`, `roll_with_pity_without_changing_pity`, and `roll_with_rare_chance_offset` are never used
[INFO] [stdout]    --> src/run_state/card_rarity_odds.rs:56:12
[INFO] [stdout]     |
[INFO] [stdout]  55 | impl CardRarityOdds {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  56 |     pub fn roll_with_pity_and_advance_on_fail(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn roll_with_pity_without_changing_pity(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     fn roll_with_rare_chance_offset(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_base_odds` is never used
[INFO] [stdout]    --> src/run_state/card_rarity_odds.rs:128:4
[INFO] [stdout]     |
[INFO] [stdout] 128 | fn get_base_odds(distribution: Distribution, rarity: Rarity, scarcity_active: bool) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/combat_state/mod.rs:3232:9
[INFO] [stdout]      |
[INFO] [stdout] 3228 |   #[derive(Debug, Clone, PartialEq, Eq, Hash)]
[INFO] [stdout]      |                          --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 3232 | /         action: fn(
[INFO] [stdout] 3233 | |             distribution::full::Distribution<CombatState>,
[INFO] [stdout] 3234 | |             Card,
[INFO] [stdout] 3235 | |         ) -> distribution::full::Distribution<CombatState>,
[INFO] [stdout]      | |__________________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]      = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: feature `iterator_try_collect` is declared but not used
[INFO] [stdout]  --> src/main.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(iterator_try_collect)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: feature `allocator_api` is declared but not used
[INFO] [stdout]  --> src/main.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(allocator_api)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 27.09s
[INFO] running `Command { std: "docker" "inspect" "cbf99819e4f2e58a75561682fe65d45bb66ac8cdc635fd226ba8f458268b9117", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cbf99819e4f2e58a75561682fe65d45bb66ac8cdc635fd226ba8f458268b9117", kill_on_drop: false }`
[INFO] [stdout] cbf99819e4f2e58a75561682fe65d45bb66ac8cdc635fd226ba8f458268b9117
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f5d96d58f6a0ac3eec086f6f4f62f2eb9b55508cc5518a9d878a234794b8a4ed
[INFO] running `Command { std: "docker" "start" "-a" "f5d96d58f6a0ac3eec086f6f4f62f2eb9b55508cc5518a9d878a234794b8a4ed", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling csv-core v0.1.13
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling csv v1.4.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling rcon-client v0.1.3
[INFO] [stderr]    Compiling sts2engine v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `SeedableRng`, `random_range`, and `rngs::SmallRng`
[INFO] [stdout]  --> src/distribution/single.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rand::{Rng, RngExt, SeedableRng, random_range, rng, rngs::SmallRng, seq::IteratorRandom};
[INFO] [stdout]   |                         ^^^^^^^^^^^  ^^^^^^^^^^^^       ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `iter::once`
[INFO] [stdout]    --> src/main.rs:287:15
[INFO] [stdout]     |
[INFO] [stdout] 287 |     use std::{iter::once, time::Duration};
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Card`
[INFO] [stdout]    --> src/main.rs:296:21
[INFO] [stdout]     |
[INFO] [stdout] 296 |             cards::{Card, CardPrototype},
[INFO] [stdout]     |                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/run_state/mcts.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |         vec![todo!()].into_iter()
[INFO] [stdout]    |         ^^^^^-------^
[INFO] [stdout]    |         |    |
[INFO] [stdout]    |         |    any code following this expression is unreachable
[INFO] [stdout]    |         unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/combat_state/encounter.rs:1276:17
[INFO] [stdout]      |
[INFO] [stdout] 1273 |                 todo!();
[INFO] [stdout]      |                 ------- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 1276 |                 let mut the_forgotten = EnumMap::default();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/combat_state/encounter.rs:494:29
[INFO] [stdout]     |
[INFO] [stdout] 494 |                         let mut status = EnumMap::default();
[INFO] [stdout]     |                             ----^^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/combat_state/encounter.rs:706:66
[INFO] [stdout]     |
[INFO] [stdout] 706 |             EncounterPrototype::TheKin => state.flat_map_simple(|mut state| {
[INFO] [stdout]     |                                                                  ----^^^^^
[INFO] [stdout]     |                                                                  |
[INFO] [stdout]     |                                                                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/combat_state/encounter.rs:1176:21
[INFO] [stdout]      |
[INFO] [stdout] 1176 |                 let mut status = EnumMap::default();
[INFO] [stdout]      |                     ----^^^^^^
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/combat_state/encounter.rs:1271:67
[INFO] [stdout]      |
[INFO] [stdout] 1271 |             EncounterPrototype::TheLostAndForgotten => state.map(|mut state| {
[INFO] [stdout]      |                                                                   ----^^^^^
[INFO] [stdout]      |                                                                   |
[INFO] [stdout]      |                                                                   help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/combat_state/encounter.rs:1272:21
[INFO] [stdout]      |
[INFO] [stdout] 1272 |                 let mut the_lost = EnumMap::default();
[INFO] [stdout]      |                     ----^^^^^^^^
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]     --> src/combat_state/encounter.rs:1271:67
[INFO] [stdout]      |
[INFO] [stdout] 1271 |             EncounterPrototype::TheLostAndForgotten => state.map(|mut state| {
[INFO] [stdout]      |                                                                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `the_lost`
[INFO] [stdout]     --> src/combat_state/encounter.rs:1272:21
[INFO] [stdout]      |
[INFO] [stdout] 1272 |                 let mut the_lost = EnumMap::default();
[INFO] [stdout]      |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_the_lost`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/combat_state/mod.rs:344:39
[INFO] [stdout]     |
[INFO] [stdout] 344 |             CombatAction::UsePotion { index } => todo!(),
[INFO] [stdout]     |                                       ^^^^^ help: try ignoring the field: `index: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/combat_state/mod.rs:529:9
[INFO] [stdout]     |
[INFO] [stdout] 529 |         mut self,
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_discard_pile_cards`
[INFO] [stdout]    --> src/combat_state/mod.rs:566:17
[INFO] [stdout]     |
[INFO] [stdout] 566 |             let num_discard_pile_cards = self.player.discard_pile.num_cards()
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_discard_pile_cards`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/combat_state/mod.rs:732:9
[INFO] [stdout]     |
[INFO] [stdout] 732 |         mut self,
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enemy_index`
[INFO] [stdout]    --> src/combat_state/mod.rs:938:30
[INFO] [stdout]     |
[INFO] [stdout] 938 |     fn enemy_is_alone(&self, enemy_index: EnemyIndex) -> bool {
[INFO] [stdout]     |                              ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/combat_state/mod.rs:1845:25
[INFO] [stdout]      |
[INFO] [stdout] 1845 |                     let mut state =
[INFO] [stdout]      |                         ----^^^^^
[INFO] [stdout]      |                         |
[INFO] [stdout]      |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/combat_state/mod.rs:3200:9
[INFO] [stdout]      |
[INFO] [stdout] 3200 |         mut self,
[INFO] [stdout]      |         ----^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `card`
[INFO] [stdout]     --> src/combat_state/mod.rs:3245:22
[INFO] [stdout]      |
[INFO] [stdout] 3245 |     fn matches(self, card: Card) -> bool {
[INFO] [stdout]      |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_card`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/comm.rs:704:39
[INFO] [stdout]     |
[INFO] [stdout] 704 |             CombatAction::UsePotion { index } => todo!(),
[INFO] [stdout]     |                                       ^^^^^ help: try ignoring the field: `index: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/micro_engine.rs:405:48
[INFO] [stdout]     |
[INFO] [stdout] 405 |                 CombatAction::PlayCard { card, target } => {
[INFO] [stdout]     |                                                ^^^^^^ help: try ignoring the field: `target: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/micro_engine.rs:415:43
[INFO] [stdout]     |
[INFO] [stdout] 415 |                 CombatAction::UsePotion { index } => 50,
[INFO] [stdout]     |                                           ^^^^^ help: try ignoring the field: `index: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]    --> src/micro_engine.rs:367:46
[INFO] [stdout]     |
[INFO] [stdout] 367 |                 EvalRunResult::Exact { eval, action } => {
[INFO] [stdout]     |                                              ^^^^^^ help: try ignoring the field: `action: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/micro_engine.rs:526:48
[INFO] [stdout]     |
[INFO] [stdout] 526 |                 CombatAction::PlayCard { card, target } => {
[INFO] [stdout]     |                                                ^^^^^^ help: try ignoring the field: `target: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/micro_engine.rs:536:43
[INFO] [stdout]     |
[INFO] [stdout] 536 |                 CombatAction::UsePotion { index } => 50,
[INFO] [stdout]     |                                           ^^^^^ help: try ignoring the field: `index: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]    --> src/micro_engine.rs:491:46
[INFO] [stdout]     |
[INFO] [stdout] 491 |                 EvalRunResult::Exact { eval, action } => {
[INFO] [stdout]     |                                              ^^^^^^ help: try ignoring the field: `action: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]    --> src/micro_engine.rs:606:46
[INFO] [stdout]     |
[INFO] [stdout] 606 |                 EvalRunResult::Exact { eval, action } => {
[INFO] [stdout]     |                                              ^^^^^^ help: try ignoring the field: `action: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `turn_count`
[INFO] [stdout]    --> src/micro_engine.rs:635:13
[INFO] [stdout]     |
[INFO] [stdout] 635 |         let turn_count = state.turn_counter;
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_turn_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chance`
[INFO] [stdout]    --> src/micro_engine.rs:647:37
[INFO] [stdout]     |
[INFO] [stdout] 647 |         for (i, (post_action_state, chance)) in successors.iter_with_odds().enumerate() {
[INFO] [stdout]     |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_chance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chance`
[INFO] [stdout]    --> src/micro_engine.rs:744:37
[INFO] [stdout]     |
[INFO] [stdout] 744 |         for (i, (post_action_state, chance)) in successors.iter_with_odds().enumerate() {
[INFO] [stdout]     |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_chance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/micro_engine.rs:798:69
[INFO] [stdout]     |
[INFO] [stdout] 798 | fn print_action_map<Eval: Display>(map: &Vec<(CombatAction, Eval)>, state: &CombatState) {
[INFO] [stdout]     |                                                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/micro_engine.rs:804:39
[INFO] [stdout]     |
[INFO] [stdout] 804 |             CombatAction::UsePotion { index } => todo!(),
[INFO] [stdout]     |                                       ^^^^^ help: try ignoring the field: `index: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eval`
[INFO] [stdout]     --> src/micro_engine.rs:1104:26
[INFO] [stdout]      |
[INFO] [stdout] 1104 |             let (action, eval) =
[INFO] [stdout]      |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_eval`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]   --> src/run_state/mcts.rs:22:25
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn apply(&mut self, action: &Self::Action) {
[INFO] [stdout]    |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_expectimax` is never used
[INFO] [stdout]    --> src/main.rs:208:4
[INFO] [stdout]     |
[INFO] [stdout] 208 | fn run_expectimax() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `UsePotion` is never constructed
[INFO] [stdout]  --> src/combat_action.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum CombatAction {
[INFO] [stdout]   |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 9 |     UsePotion { index: u8 },
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `CombatAction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `potions_used`, `bonus_card_rewards`, and `relic_state` are never read
[INFO] [stdout]    --> src/combat_state/mod.rs:160:9
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub struct PostCombatState {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub potions_used: [bool; 10],
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub bonus_card_rewards: u8,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 164 |
[INFO] [stdout] 165 |     pub relic_state: FullRelicState,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PostCombatState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `on_draw_non_draw_phase_card` is never used
[INFO] [stdout]     --> src/combat_state/mod.rs:1450:8
[INFO] [stdout]      |
[INFO] [stdout]  190 | impl CombatState {
[INFO] [stdout]      | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1450 |     fn on_draw_non_draw_phase_card<
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Lightning`, `Frost`, `Dark`, `Plasma`, and `Glass` are never constructed
[INFO] [stdout]     --> src/combat_state/mod.rs:3296:5
[INFO] [stdout]      |
[INFO] [stdout] 3295 | enum Orb {
[INFO] [stdout]      |      --- variants in this enum
[INFO] [stdout] 3296 |     Lightning,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 3297 |     Frost,
[INFO] [stdout]      |     ^^^^^
[INFO] [stdout] 3298 |     Dark { accumulator: u16 },
[INFO] [stdout]      |     ^^^^
[INFO] [stdout] 3299 |     Plasma,
[INFO] [stdout]      |     ^^^^^^
[INFO] [stdout] 3300 |     Glass { damage_reduction: u8 },
[INFO] [stdout]      |     ^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `Orb` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_intent` is never used
[INFO] [stdout]     --> src/combat_state/mod.rs:3807:8
[INFO] [stdout]      |
[INFO] [stdout] 3806 | impl EnemyStateMachine {
[INFO] [stdout]      | ---------------------- method in this implementation
[INFO] [stdout] 3807 |     fn get_intent(&self) -> Intent {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Intent` is never used
[INFO] [stdout]     --> src/combat_state/mod.rs:3812:6
[INFO] [stdout]      |
[INFO] [stdout] 3812 | enum Intent {}
[INFO] [stdout]      |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `X` is never constructed
[INFO] [stdout]    --> src/combat_state/cards.rs:193:5
[INFO] [stdout]     |
[INFO] [stdout] 192 | pub enum CostVal {
[INFO] [stdout]     |          ------- variant in this enum
[INFO] [stdout] 193 |     X,
[INFO] [stdout]     |     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CostVal` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OtherPlayer` is never constructed
[INFO] [stdout]    --> src/combat_state/cards.rs:533:5
[INFO] [stdout]     |
[INFO] [stdout] 531 | pub enum LegalTarget {
[INFO] [stdout]     |          ----------- variant in this enum
[INFO] [stdout] 532 |     OwnPlayer,
[INFO] [stdout] 533 |     OtherPlayer,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LegalTarget` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Underdocks` is never constructed
[INFO] [stdout]   --> src/combat_state/encounter.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub enum Act {
[INFO] [stdout]    |          --- variant in this enum
[INFO] [stdout] 60 |     Overgrowth,
[INFO] [stdout] 61 |     Underdocks,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Act` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `very_confused` is never used
[INFO] [stdout]     --> src/combat_state/mod.rs:5337:12
[INFO] [stdout]      |
[INFO] [stdout] 5337 |     pub fn very_confused() -> CombatState {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transposition_test` is never used
[INFO] [stdout]     --> src/combat_state/mod.rs:5543:12
[INFO] [stdout]      |
[INFO] [stdout] 5543 |     pub fn transposition_test() -> CombatState {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_combat_state` is never used
[INFO] [stdout]   --> src/comm.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl Comm {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     fn get_combat_state(&self) -> Vec<CombatState> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `kind` is never read
[INFO] [stdout]    --> src/comm.rs:270:5
[INFO] [stdout]     |
[INFO] [stdout] 269 | struct PlayerCreatureInfo {
[INFO] [stdout]     |        ------------------ field in this struct
[INFO] [stdout] 270 |     kind: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PlayerCreatureInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `discard`, `exhaust`, and `play` are never read
[INFO] [stdout]    --> src/comm.rs:481:5
[INFO] [stdout]     |
[INFO] [stdout] 478 | struct CardState {
[INFO] [stdout]     |        --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 481 |     discard: vec::Vec<CardInfo>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 482 |     exhaust: vec::Vec<CardInfo>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 483 |     play: vec::Vec<CardInfo>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CardState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `discard_pile` is never used
[INFO] [stdout]    --> src/comm.rs:659:8
[INFO] [stdout]     |
[INFO] [stdout] 506 | impl RCONComm {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 659 |     fn discard_pile(&mut self) -> vec::Vec<CardInfo> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Flatten` is never used
[INFO] [stdout]   --> src/distribution/mod.rs:80:11
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub trait Flatten<Value: 'static, D: Distribution<Value> + 'static>: Distribution<D> {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `flatten` is never used
[INFO] [stdout]   --> src/distribution/single.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl<Value> Distribution<Distribution<Value>> {
[INFO] [stdout]    | --------------------------------------------- method in this implementation
[INFO] [stdout] 19 |     fn flatten(self) -> Distribution<Value> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `ZERO` is never used
[INFO] [stdout]    --> src/micro_engine.rs:161:11
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub trait EvalResult:
[INFO] [stdout]     |           ---------- associated constant in this trait
[INFO] [stdout] ...
[INFO] [stdout] 161 |     const ZERO: Self;
[INFO] [stdout]     |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROBING_FACTOR` is never used
[INFO] [stdout]    --> src/micro_engine.rs:212:7
[INFO] [stdout]     |
[INFO] [stdout] 212 | const PROBING_FACTOR: usize = 1;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_max_probe` is never used
[INFO] [stdout]    --> src/micro_engine.rs:462:8
[INFO] [stdout]     |
[INFO] [stdout] 214 | impl<F: EvaluationFunction> MicroEngine<F> {
[INFO] [stdout]     | ------------------------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 462 |     fn get_max_probe(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `TIMES_CACHED` is never used
[INFO] [stdout]    --> src/micro_engine.rs:813:16
[INFO] [stdout]     |
[INFO] [stdout] 813 |     pub static TIMES_CACHED: AtomicUsize = AtomicUsize::new(0);
[INFO] [stdout]     |                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `TIMES_CULLED` is never used
[INFO] [stdout]    --> src/micro_engine.rs:814:16
[INFO] [stdout]     |
[INFO] [stdout] 814 |     pub static TIMES_CULLED: AtomicUsize = AtomicUsize::new(0);
[INFO] [stdout]     |                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `TIMES_CULLED_AT_DEPTH` is never used
[INFO] [stdout]    --> src/micro_engine.rs:815:16
[INFO] [stdout]     |
[INFO] [stdout] 815 |     pub static TIMES_CULLED_AT_DEPTH: [AtomicUsize; 100] = [const { AtomicUsize::new(0) }; _];
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `STATES_EVALUATED_AT_DEPTH` is never used
[INFO] [stdout]    --> src/micro_engine.rs:817:16
[INFO] [stdout]     |
[INFO] [stdout] 817 |     pub static STATES_EVALUATED_AT_DEPTH: [AtomicUsize; 100] = [const { AtomicUsize::new(0) }; _];
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RunState` is never constructed
[INFO] [stdout]  --> src/run_state/mod.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct RunState {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RunAction` is never used
[INFO] [stdout]   --> src/run_state/mod.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum RunAction {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Act` is never constructed
[INFO] [stdout]   --> src/run_state/mod.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct Act {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ActPrototype` is never used
[INFO] [stdout]   --> src/run_state/mod.rs:27:6
[INFO] [stdout]    |
[INFO] [stdout] 27 | enum ActPrototype {
[INFO] [stdout]    |      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Map` is never constructed
[INFO] [stdout]   --> src/run_state/mod.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | struct Map {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]   --> src/run_state/mod.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | struct Node {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NodeKind` is never used
[INFO] [stdout]   --> src/run_state/mod.rs:48:6
[INFO] [stdout]    |
[INFO] [stdout] 48 | enum NodeKind {
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `roll_with_pity_and_advance_on_fail` is never used
[INFO] [stdout]   --> src/run_state/card_rarity_odds.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl CardRarityOdds {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] 56 |     pub fn roll_with_pity_and_advance_on_fail(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/combat_state/mod.rs:3232:9
[INFO] [stdout]      |
[INFO] [stdout] 3228 |   #[derive(Debug, Clone, PartialEq, Eq, Hash)]
[INFO] [stdout]      |                          --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 3232 | /         action: fn(
[INFO] [stdout] 3233 | |             distribution::full::Distribution<CombatState>,
[INFO] [stdout] 3234 | |             Card,
[INFO] [stdout] 3235 | |         ) -> distribution::full::Distribution<CombatState>,
[INFO] [stdout]      | |__________________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]      = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `ControlFlow` that must be used
[INFO] [stdout]     --> src/micro_engine.rs:1065:9
[INFO] [stdout]      |
[INFO] [stdout] 1065 | /         dbg!(engine.get_max(
[INFO] [stdout] 1066 | |             &state,
[INFO] [stdout] 1067 | |             f32::MIN,
[INFO] [stdout] 1068 | |             engine.eval_function.best_possible_evaluation(&state),
[INFO] [stdout] 1069 | |             20,
[INFO] [stdout] 1070 | |         ),);
[INFO] [stdout]      | |___________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1065 |         let _ = dbg!(engine.get_max(
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: feature `iterator_try_collect` is declared but not used
[INFO] [stdout]  --> src/main.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(iterator_try_collect)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: feature `allocator_api` is declared but not used
[INFO] [stdout]  --> src/main.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(allocator_api)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 12.38s
[INFO] running `Command { std: "docker" "inspect" "f5d96d58f6a0ac3eec086f6f4f62f2eb9b55508cc5518a9d878a234794b8a4ed", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f5d96d58f6a0ac3eec086f6f4f62f2eb9b55508cc5518a9d878a234794b8a4ed", kill_on_drop: false }`
[INFO] [stdout] f5d96d58f6a0ac3eec086f6f4f62f2eb9b55508cc5518a9d878a234794b8a4ed
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] dc3b5e03d3907c3f3f3afe2cfa5654da8d4299e893b93221d5c0e24cb8c8bcb4
[INFO] running `Command { std: "docker" "start" "-a" "dc3b5e03d3907c3f3f3afe2cfa5654da8d4299e893b93221d5c0e24cb8c8bcb4", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `SeedableRng`, `random_range`, and `rngs::SmallRng`
[INFO] [stderr]  --> src/distribution/single.rs:1:25
[INFO] [stderr]   |
[INFO] [stderr] 1 | use rand::{Rng, RngExt, SeedableRng, random_range, rng, rngs::SmallRng, seq::IteratorRandom};
[INFO] [stderr]   |                         ^^^^^^^^^^^  ^^^^^^^^^^^^       ^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `iter::once`
[INFO] [stderr]    --> src/main.rs:287:15
[INFO] [stderr]     |
[INFO] [stderr] 287 |     use std::{iter::once, time::Duration};
[INFO] [stderr]     |               ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Card`
[INFO] [stderr]    --> src/main.rs:296:21
[INFO] [stderr]     |
[INFO] [stderr] 296 |             cards::{Card, CardPrototype},
[INFO] [stderr]     |                     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable expression
[INFO] [stderr]   --> src/run_state/mcts.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 |         vec![todo!()].into_iter()
[INFO] [stderr]    |         ^^^^^-------^
[INFO] [stderr]    |         |    |
[INFO] [stderr]    |         |    any code following this expression is unreachable
[INFO] [stderr]    |         unreachable expression
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable statement
[INFO] [stderr]     --> src/combat_state/encounter.rs:1276:17
[INFO] [stderr]      |
[INFO] [stderr] 1273 |                 todo!();
[INFO] [stderr]      |                 ------- any code following this expression is unreachable
[INFO] [stderr] ...
[INFO] [stderr] 1276 |                 let mut the_forgotten = EnumMap::default();
[INFO] [stderr]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/combat_state/encounter.rs:494:29
[INFO] [stderr]     |
[INFO] [stderr] 494 |                         let mut status = EnumMap::default();
[INFO] [stderr]     |                             ----^^^^^^
[INFO] [stderr]     |                             |
[INFO] [stderr]     |                             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/combat_state/encounter.rs:706:66
[INFO] [stderr]     |
[INFO] [stderr] 706 |             EncounterPrototype::TheKin => state.flat_map_simple(|mut state| {
[INFO] [stderr]     |                                                                  ----^^^^^
[INFO] [stderr]     |                                                                  |
[INFO] [stderr]     |                                                                  help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/combat_state/encounter.rs:1176:21
[INFO] [stderr]      |
[INFO] [stderr] 1176 |                 let mut status = EnumMap::default();
[INFO] [stderr]      |                     ----^^^^^^
[INFO] [stderr]      |                     |
[INFO] [stderr]      |                     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/combat_state/encounter.rs:1271:67
[INFO] [stderr]      |
[INFO] [stderr] 1271 |             EncounterPrototype::TheLostAndForgotten => state.map(|mut state| {
[INFO] [stderr]      |                                                                   ----^^^^^
[INFO] [stderr]      |                                                                   |
[INFO] [stderr]      |                                                                   help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/combat_state/encounter.rs:1272:21
[INFO] [stderr]      |
[INFO] [stderr] 1272 |                 let mut the_lost = EnumMap::default();
[INFO] [stderr]      |                     ----^^^^^^^^
[INFO] [stderr]      |                     |
[INFO] [stderr]      |                     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `state`
[INFO] [stderr]     --> src/combat_state/encounter.rs:1271:67
[INFO] [stderr]      |
[INFO] [stderr] 1271 |             EncounterPrototype::TheLostAndForgotten => state.map(|mut state| {
[INFO] [stderr]      |                                                                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `the_lost`
[INFO] [stderr]     --> src/combat_state/encounter.rs:1272:21
[INFO] [stderr]      |
[INFO] [stderr] 1272 |                 let mut the_lost = EnumMap::default();
[INFO] [stderr]      |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_the_lost`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `index`
[INFO] [stderr]    --> src/combat_state/mod.rs:344:39
[INFO] [stderr]     |
[INFO] [stderr] 344 |             CombatAction::UsePotion { index } => todo!(),
[INFO] [stderr]     |                                       ^^^^^ help: try ignoring the field: `index: _`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/combat_state/mod.rs:529:9
[INFO] [stderr]     |
[INFO] [stderr] 529 |         mut self,
[INFO] [stderr]     |         ----^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `num_discard_pile_cards`
[INFO] [stderr]    --> src/combat_state/mod.rs:566:17
[INFO] [stderr]     |
[INFO] [stderr] 566 |             let num_discard_pile_cards = self.player.discard_pile.num_cards()
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_discard_pile_cards`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/combat_state/mod.rs:732:9
[INFO] [stderr]     |
[INFO] [stderr] 732 |         mut self,
[INFO] [stderr]     |         ----^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `enemy_index`
[INFO] [stderr]    --> src/combat_state/mod.rs:938:30
[INFO] [stderr]     |
[INFO] [stderr] 938 |     fn enemy_is_alone(&self, enemy_index: EnemyIndex) -> bool {
[INFO] [stderr]     |                              ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_index`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/combat_state/mod.rs:1845:25
[INFO] [stderr]      |
[INFO] [stderr] 1845 |                     let mut state =
[INFO] [stderr]      |                         ----^^^^^
[INFO] [stderr]      |                         |
[INFO] [stderr]      |                         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/combat_state/mod.rs:3200:9
[INFO] [stderr]      |
[INFO] [stderr] 3200 |         mut self,
[INFO] [stderr]      |         ----^^^^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `card`
[INFO] [stderr]     --> src/combat_state/mod.rs:3245:22
[INFO] [stderr]      |
[INFO] [stderr] 3245 |     fn matches(self, card: Card) -> bool {
[INFO] [stderr]      |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_card`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `index`
[INFO] [stderr]    --> src/comm.rs:704:39
[INFO] [stderr]     |
[INFO] [stderr] 704 |             CombatAction::UsePotion { index } => todo!(),
[INFO] [stderr]     |                                       ^^^^^ help: try ignoring the field: `index: _`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `target`
[INFO] [stderr]    --> src/micro_engine.rs:405:48
[INFO] [stderr]     |
[INFO] [stderr] 405 |                 CombatAction::PlayCard { card, target } => {
[INFO] [stderr]     |                                                ^^^^^^ help: try ignoring the field: `target: _`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `index`
[INFO] [stderr]    --> src/micro_engine.rs:415:43
[INFO] [stderr]     |
[INFO] [stderr] 415 |                 CombatAction::UsePotion { index } => 50,
[INFO] [stderr]     |                                           ^^^^^ help: try ignoring the field: `index: _`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `action`
[INFO] [stderr]    --> src/micro_engine.rs:367:46
[INFO] [stderr]     |
[INFO] [stderr] 367 |                 EvalRunResult::Exact { eval, action } => {
[INFO] [stderr]     |                                              ^^^^^^ help: try ignoring the field: `action: _`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `target`
[INFO] [stderr]    --> src/micro_engine.rs:526:48
[INFO] [stderr]     |
[INFO] [stderr] 526 |                 CombatAction::PlayCard { card, target } => {
[INFO] [stderr]     |                                                ^^^^^^ help: try ignoring the field: `target: _`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `index`
[INFO] [stderr]    --> src/micro_engine.rs:536:43
[INFO] [stderr]     |
[INFO] [stderr] 536 |                 CombatAction::UsePotion { index } => 50,
[INFO] [stderr]     |                                           ^^^^^ help: try ignoring the field: `index: _`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `action`
[INFO] [stderr]    --> src/micro_engine.rs:491:46
[INFO] [stderr]     |
[INFO] [stderr] 491 |                 EvalRunResult::Exact { eval, action } => {
[INFO] [stderr]     |                                              ^^^^^^ help: try ignoring the field: `action: _`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `action`
[INFO] [stderr]    --> src/micro_engine.rs:606:46
[INFO] [stderr]     |
[INFO] [stderr] 606 |                 EvalRunResult::Exact { eval, action } => {
[INFO] [stderr]     |                                              ^^^^^^ help: try ignoring the field: `action: _`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `turn_count`
[INFO] [stderr]    --> src/micro_engine.rs:635:13
[INFO] [stderr]     |
[INFO] [stderr] 635 |         let turn_count = state.turn_counter;
[INFO] [stderr]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_turn_count`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `chance`
[INFO] [stderr]    --> src/micro_engine.rs:647:37
[INFO] [stderr]     |
[INFO] [stderr] 647 |         for (i, (post_action_state, chance)) in successors.iter_with_odds().enumerate() {
[INFO] [stderr]     |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_chance`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `chance`
[INFO] [stderr]    --> src/micro_engine.rs:744:37
[INFO] [stderr]     |
[INFO] [stderr] 744 |         for (i, (post_action_state, chance)) in successors.iter_with_odds().enumerate() {
[INFO] [stderr]     |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_chance`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `state`
[INFO] [stderr]    --> src/micro_engine.rs:798:69
[INFO] [stderr]     |
[INFO] [stderr] 798 | fn print_action_map<Eval: Display>(map: &Vec<(CombatAction, Eval)>, state: &CombatState) {
[INFO] [stderr]     |                                                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `index`
[INFO] [stderr]    --> src/micro_engine.rs:804:39
[INFO] [stderr]     |
[INFO] [stderr] 804 |             CombatAction::UsePotion { index } => todo!(),
[INFO] [stderr]     |                                       ^^^^^ help: try ignoring the field: `index: _`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `eval`
[INFO] [stderr]     --> src/micro_engine.rs:1104:26
[INFO] [stderr]      |
[INFO] [stderr] 1104 |             let (action, eval) =
[INFO] [stderr]      |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_eval`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `action`
[INFO] [stderr]   --> src/run_state/mcts.rs:22:25
[INFO] [stderr]    |
[INFO] [stderr] 22 |     fn apply(&mut self, action: &Self::Action) {
[INFO] [stderr]    |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stderr] 
[INFO] [stderr] warning: function `run_expectimax` is never used
[INFO] [stderr]    --> src/main.rs:208:4
[INFO] [stderr]     |
[INFO] [stderr] 208 | fn run_expectimax() {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variant `UsePotion` is never constructed
[INFO] [stderr]  --> src/combat_action.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub enum CombatAction {
[INFO] [stderr]   |          ------------ variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 9 |     UsePotion { index: u8 },
[INFO] [stderr]   |     ^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `CombatAction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `potions_used`, `bonus_card_rewards`, and `relic_state` are never read
[INFO] [stderr]    --> src/combat_state/mod.rs:160:9
[INFO] [stderr]     |
[INFO] [stderr] 154 | pub struct PostCombatState {
[INFO] [stderr]     |            --------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 160 |     pub potions_used: [bool; 10],
[INFO] [stderr]     |         ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 163 |     pub bonus_card_rewards: u8,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 164 |
[INFO] [stderr] 165 |     pub relic_state: FullRelicState,
[INFO] [stderr]     |         ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `PostCombatState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `on_draw_non_draw_phase_card` is never used
[INFO] [stderr]     --> src/combat_state/mod.rs:1450:8
[INFO] [stderr]      |
[INFO] [stderr]  190 | impl CombatState {
[INFO] [stderr]      | ---------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 1450 |     fn on_draw_non_draw_phase_card<
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Lightning`, `Frost`, `Dark`, `Plasma`, and `Glass` are never constructed
[INFO] [stderr]     --> src/combat_state/mod.rs:3296:5
[INFO] [stderr]      |
[INFO] [stderr] 3295 | enum Orb {
[INFO] [stderr]      |      --- variants in this enum
[INFO] [stderr] 3296 |     Lightning,
[INFO] [stderr]      |     ^^^^^^^^^
[INFO] [stderr] 3297 |     Frost,
[INFO] [stderr]      |     ^^^^^
[INFO] [stderr] 3298 |     Dark { accumulator: u16 },
[INFO] [stderr]      |     ^^^^
[INFO] [stderr] 3299 |     Plasma,
[INFO] [stderr]      |     ^^^^^^
[INFO] [stderr] 3300 |     Glass { damage_reduction: u8 },
[INFO] [stderr]      |     ^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `Orb` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_intent` is never used
[INFO] [stderr]     --> src/combat_state/mod.rs:3807:8
[INFO] [stderr]      |
[INFO] [stderr] 3806 | impl EnemyStateMachine {
[INFO] [stderr]      | ---------------------- method in this implementation
[INFO] [stderr] 3807 |     fn get_intent(&self) -> Intent {
[INFO] [stderr]      |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Intent` is never used
[INFO] [stderr]     --> src/combat_state/mod.rs:3812:6
[INFO] [stderr]      |
[INFO] [stderr] 3812 | enum Intent {}
[INFO] [stderr]      |      ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `X` is never constructed
[INFO] [stderr]    --> src/combat_state/cards.rs:193:5
[INFO] [stderr]     |
[INFO] [stderr] 192 | pub enum CostVal {
[INFO] [stderr]     |          ------- variant in this enum
[INFO] [stderr] 193 |     X,
[INFO] [stderr]     |     ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `CostVal` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variant `OtherPlayer` is never constructed
[INFO] [stderr]    --> src/combat_state/cards.rs:533:5
[INFO] [stderr]     |
[INFO] [stderr] 531 | pub enum LegalTarget {
[INFO] [stderr]     |          ----------- variant in this enum
[INFO] [stderr] 532 |     OwnPlayer,
[INFO] [stderr] 533 |     OtherPlayer,
[INFO] [stderr]     |     ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `LegalTarget` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Underdocks` is never constructed
[INFO] [stderr]   --> src/combat_state/encounter.rs:61:5
[INFO] [stderr]    |
[INFO] [stderr] 59 | pub enum Act {
[INFO] [stderr]    |          --- variant in this enum
[INFO] [stderr] 60 |     Overgrowth,
[INFO] [stderr] 61 |     Underdocks,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Act` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: function `very_confused` is never used
[INFO] [stderr]     --> src/combat_state/mod.rs:5337:12
[INFO] [stderr]      |
[INFO] [stderr] 5337 |     pub fn very_confused() -> CombatState {
[INFO] [stderr]      |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `transposition_test` is never used
[INFO] [stderr]     --> src/combat_state/mod.rs:5543:12
[INFO] [stderr]      |
[INFO] [stderr] 5543 |     pub fn transposition_test() -> CombatState {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_combat_state` is never used
[INFO] [stderr]   --> src/comm.rs:37:8
[INFO] [stderr]    |
[INFO] [stderr] 24 | impl Comm {
[INFO] [stderr]    | --------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 37 |     fn get_combat_state(&self) -> Vec<CombatState> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `kind` is never read
[INFO] [stderr]    --> src/comm.rs:270:5
[INFO] [stderr]     |
[INFO] [stderr] 269 | struct PlayerCreatureInfo {
[INFO] [stderr]     |        ------------------ field in this struct
[INFO] [stderr] 270 |     kind: String,
[INFO] [stderr]     |     ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `PlayerCreatureInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `discard`, `exhaust`, and `play` are never read
[INFO] [stderr]    --> src/comm.rs:481:5
[INFO] [stderr]     |
[INFO] [stderr] 478 | struct CardState {
[INFO] [stderr]     |        --------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 481 |     discard: vec::Vec<CardInfo>,
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr] 482 |     exhaust: vec::Vec<CardInfo>,
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr] 483 |     play: vec::Vec<CardInfo>,
[INFO] [stderr]     |     ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `CardState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `discard_pile` is never used
[INFO] [stderr]    --> src/comm.rs:659:8
[INFO] [stderr]     |
[INFO] [stderr] 506 | impl RCONComm {
[INFO] [stderr]     | ------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 659 |     fn discard_pile(&mut self) -> vec::Vec<CardInfo> {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Flatten` is never used
[INFO] [stderr]   --> src/distribution/mod.rs:80:11
[INFO] [stderr]    |
[INFO] [stderr] 80 | pub trait Flatten<Value: 'static, D: Distribution<Value> + 'static>: Distribution<D> {
[INFO] [stderr]    |           ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `flatten` is never used
[INFO] [stderr]   --> src/distribution/single.rs:19:8
[INFO] [stderr]    |
[INFO] [stderr] 18 | impl<Value> Distribution<Distribution<Value>> {
[INFO] [stderr]    | --------------------------------------------- method in this implementation
[INFO] [stderr] 19 |     fn flatten(self) -> Distribution<Value> {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated constant `ZERO` is never used
[INFO] [stderr]    --> src/micro_engine.rs:161:11
[INFO] [stderr]     |
[INFO] [stderr] 152 | pub trait EvalResult:
[INFO] [stderr]     |           ---------- associated constant in this trait
[INFO] [stderr] ...
[INFO] [stderr] 161 |     const ZERO: Self;
[INFO] [stderr]     |           ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PROBING_FACTOR` is never used
[INFO] [stderr]    --> src/micro_engine.rs:212:7
[INFO] [stderr]     |
[INFO] [stderr] 212 | const PROBING_FACTOR: usize = 1;
[INFO] [stderr]     |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_max_probe` is never used
[INFO] [stderr]    --> src/micro_engine.rs:462:8
[INFO] [stderr]     |
[INFO] [stderr] 214 | impl<F: EvaluationFunction> MicroEngine<F> {
[INFO] [stderr]     | ------------------------------------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 462 |     fn get_max_probe(
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `TIMES_CACHED` is never used
[INFO] [stderr]    --> src/micro_engine.rs:813:16
[INFO] [stderr]     |
[INFO] [stderr] 813 |     pub static TIMES_CACHED: AtomicUsize = AtomicUsize::new(0);
[INFO] [stderr]     |                ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `TIMES_CULLED` is never used
[INFO] [stderr]    --> src/micro_engine.rs:814:16
[INFO] [stderr]     |
[INFO] [stderr] 814 |     pub static TIMES_CULLED: AtomicUsize = AtomicUsize::new(0);
[INFO] [stderr]     |                ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `TIMES_CULLED_AT_DEPTH` is never used
[INFO] [stderr]    --> src/micro_engine.rs:815:16
[INFO] [stderr]     |
[INFO] [stderr] 815 |     pub static TIMES_CULLED_AT_DEPTH: [AtomicUsize; 100] = [const { AtomicUsize::new(0) }; _];
[INFO] [stderr]     |                ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `STATES_EVALUATED_AT_DEPTH` is never used
[INFO] [stderr]    --> src/micro_engine.rs:817:16
[INFO] [stderr]     |
[INFO] [stderr] 817 |     pub static STATES_EVALUATED_AT_DEPTH: [AtomicUsize; 100] = [const { AtomicUsize::new(0) }; _];
[INFO] [stderr]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `RunState` is never constructed
[INFO] [stderr]  --> src/run_state/mod.rs:8:12
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub struct RunState {
[INFO] [stderr]   |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `RunAction` is never used
[INFO] [stderr]   --> src/run_state/mod.rs:15:10
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub enum RunAction {
[INFO] [stderr]    |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Act` is never constructed
[INFO] [stderr]   --> src/run_state/mod.rs:20:8
[INFO] [stderr]    |
[INFO] [stderr] 20 | struct Act {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `ActPrototype` is never used
[INFO] [stderr]   --> src/run_state/mod.rs:27:6
[INFO] [stderr]    |
[INFO] [stderr] 27 | enum ActPrototype {
[INFO] [stderr]    |      ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Map` is never constructed
[INFO] [stderr]   --> src/run_state/mod.rs:35:8
[INFO] [stderr]    |
[INFO] [stderr] 35 | struct Map {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Node` is never constructed
[INFO] [stderr]   --> src/run_state/mod.rs:40:8
[INFO] [stderr]    |
[INFO] [stderr] 40 | struct Node {
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `NodeKind` is never used
[INFO] [stderr]   --> src/run_state/mod.rs:48:6
[INFO] [stderr]    |
[INFO] [stderr] 48 | enum NodeKind {
[INFO] [stderr]    |      ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `roll_with_pity_and_advance_on_fail` is never used
[INFO] [stderr]   --> src/run_state/card_rarity_odds.rs:56:12
[INFO] [stderr]    |
[INFO] [stderr] 55 | impl CardRarityOdds {
[INFO] [stderr]    | ------------------- method in this implementation
[INFO] [stderr] 56 |     pub fn roll_with_pity_and_advance_on_fail(
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stderr]     --> src/combat_state/mod.rs:3232:9
[INFO] [stderr]      |
[INFO] [stderr] 3228 |   #[derive(Debug, Clone, PartialEq, Eq, Hash)]
[INFO] [stderr]      |                          --------- in this derive macro expansion
[INFO] [stderr] ...
[INFO] [stderr] 3232 | /         action: fn(
[INFO] [stderr] 3233 | |             distribution::full::Distribution<CombatState>,
[INFO] [stderr] 3234 | |             Card,
[INFO] [stderr] 3235 | |         ) -> distribution::full::Distribution<CombatState>,
[INFO] [stderr]      | |__________________________________________________________^
[INFO] [stderr]      |
[INFO] [stderr]      = note: the address of the same function can vary between different codegen units
[INFO] [stderr]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stderr]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stderr]      = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused `ControlFlow` that must be used
[INFO] [stderr]     --> src/micro_engine.rs:1065:9
[INFO] [stderr]      |
[INFO] [stderr] 1065 | /         dbg!(engine.get_max(
[INFO] [stderr] 1066 | |             &state,
[INFO] [stderr] 1067 | |             f32::MIN,
[INFO] [stderr] 1068 | |             engine.eval_function.best_possible_evaluation(&state),
[INFO] [stderr] 1069 | |             20,
[INFO] [stderr] 1070 | |         ),);
[INFO] [stderr]      | |___________^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]      |
[INFO] [stderr] 1065 |         let _ = dbg!(engine.get_max(
[INFO] [stderr]      |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: feature `iterator_try_collect` is declared but not used
[INFO] [stderr]  --> src/main.rs:1:12
[INFO] [stderr]   |
[INFO] [stderr] 1 | #![feature(iterator_try_collect)]
[INFO] [stderr]   |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: feature `allocator_api` is declared but not used
[INFO] [stderr]  --> src/main.rs:2:12
[INFO] [stderr]   |
[INFO] [stderr] 2 | #![feature(allocator_api)]
[INFO] [stderr]   |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `sts2engine` (bin "sts2engine" test) generated 72 warnings (run `cargo fix --bin "sts2engine" -p sts2engine --tests` to apply 33 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.16s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/sts2engine-7d1ba04389f6f506)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test combat_state::test::equality_for_card_sets ... ok
[INFO] [stdout] test run_state::card_rarity_odds::test::experimentally_get_odds ... ok
[INFO] [stdout] test micro_engine::test::ensure_focus_is_preferred ... ok
[INFO] [stderr] error: test failed, to rerun pass `--bin sts2engine`
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   process didn't exit successfully: `/opt/rustwide/target/debug/deps/sts2engine-7d1ba04389f6f506` (signal: 9, SIGKILL: kill)
[INFO] running `Command { std: "docker" "inspect" "dc3b5e03d3907c3f3f3afe2cfa5654da8d4299e893b93221d5c0e24cb8c8bcb4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dc3b5e03d3907c3f3f3afe2cfa5654da8d4299e893b93221d5c0e24cb8c8bcb4", kill_on_drop: false }`
[INFO] [stdout] dc3b5e03d3907c3f3f3afe2cfa5654da8d4299e893b93221d5c0e24cb8c8bcb4
